# Gemma 3 270M Docker镜像 - 使用 PyTorch + torch.compile 优化，CPU 推理
# 使用 Python 3.10 基础镜像
FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/python:3.10-slim-linuxarm64

# 设置工作目录
WORKDIR /app

# 设置环境变量
ENV PYTHONUNBUFFERED=1
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONPATH=/app

# PyTorch 优化设置
ENV OMP_NUM_THREADS=4
# 抑制 torch.compile 的 cudagraph 警告（CPU 上 cudagraph 不适用）
# 可以通过设置 ENABLE_TORCH_COMPILE=false 完全禁用编译以避免警告
ENV TORCH_LOGS=""
ENV TORCHDYNAMO_VERBOSE=0
ENV TORCH_COMPILE_DEBUG=0
ENV ENABLE_TORCH_COMPILE=true

# 配置 apt 使用清华源
RUN sed -i 's|http://deb.debian.org|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
    sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list 2>/dev/null || true

# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    git \
    wget \
    curl \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

# 验证Python版本
RUN python3 --version && \
    python3 -m pip --version

# 配置pip使用清华源
RUN python3 -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
    python3 -m pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

# 升级pip
RUN python3 -m pip install --upgrade pip setuptools wheel

# 复制requirements文件
COPY requirements.txt .

# 安装Python依赖（使用清华源）
RUN python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

# 复制应用代码
COPY api/ ./api/
COPY config/ ./config/

# 创建必要的目录
RUN mkdir -p /app/models /app/logs

# 设置权限
RUN chmod -R 755 /app

# 暴露端口
EXPOSE 8000

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
    CMD curl -f http://localhost:8000/health || exit 1

# 启动命令
CMD ["python3", "-m", "uvicorn", "api.main:app", "--host", "0.0.0.0", "--port", "8000", "--app-dir", "/app"]

